package com.example.asus.homework11.model;


import com.example.asus.homework11.bean.LoginBean;
import com.example.asus.homework11.listener.RetrofitListener;
import com.example.asus.homework11.retrofitservice.LoginService;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;

/**
 * Created by asus on 2018/9/13.
 */

public class UserModel {
    private LoginService service;
    private Retrofit retrofit;//实现接口和移动端的连接

    private static/*只能在本类里使用和更改*/ final/*如果在别的类里更改了这个属性，最终调用的时候将会被重写成此属性*/ String BASE_URL = "http:/172.24.10.175:8080/foodService/";
    public UserModel(){/*写出无参的构造方法，当你运行整个项目的时候，回首先运行此无参构造方法*/
        retrofit = new Retrofit.Builder().baseUrl(BASE_URL).addConverterFactory(GsonConverterFactory.create()).build();/*将从网络上获取的数据转化成json并且存储到ConverterFactory*/
        service = retrofit.create(LoginService.class);/* retrofit里的一个create方法 将获取到的json数据初步解析，用service方法解析,将对应的参数放到所定义的属性里*/

    }
    public void userLogin(String username, String password, final RetrofitListener listener){/*实现listen的监听*/
        Call call = service.userLogin(username,password);/*传达语句*/
        Callback<LoginBean> callback/*存的是所有账户密码返回的userid*/ = new Callback<LoginBean>()/*获取到所有的账户密码存在Callback  然后判断userid*/ {
            @Override
            public void onResponse(Call<LoginBean> call, Response<LoginBean> response) {
                listener.onSuccess(response.body(),1);
                System.out.print(response.body().toString());/*flag将会在主类里使用*/
            }

            @Override
        public void onFailure(Call<LoginBean> call, Throwable t) {
            listener.onFail();
        }
    };
        call.enqueue(callback);
    }
}
